class JsonAstBuilder2: public JsonAstBuilder{
 public:
  JsonAstBuilder2() {}

  virtual ~JsonAstBuilder2() {}
  
  void PrintIndented(const char* txt);
  
  inline const char* AstTokenString(AstToken::Value tok) {
    return AstToken::String(tok);
  }
  
  const char* BuildProgram(FunctionLiteral* program);
  
  // AST node visit functions.
#define DECLARE_VISIT(type) virtual void Visit##type(type* node);
  AST_NODE_LIST(DECLARE_VISIT)
#undef DECLARE_VISIT

};
